﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ProtoBuf;

namespace Network
{
    [Serializable]
    [ProtoContract]
    [ProtoInclude(5, typeof(ClientPacket))]
    [ProtoInclude(6, typeof(ServerPacket))]
    public class Packet
    {
        /// <summary>
        /// Порядковый номер пакета
        /// </summary>
        [ProtoMember(1)]
        public ushort Sequence;
        /// <summary>
        /// Порядковый номер самого свежего полученного пакета
        /// </summary>
        [ProtoMember(2)]
        public ushort Ack;
        /// <summary>
        /// Состояния последних 32 пакетов перед самым свежим (полчено\не получено).
        /// Самый левый бит - самый старый пакет, самый правый - предпоследний пакет
        /// </summary>
        [ProtoMember(3)]
        public uint AckBits;
        /// <summary>
        /// Время отправки сообщения
        /// </summary>
        [ProtoMember(4)]
        public TimeSpan Time;
    }
}
